package carte.element;

import java.awt.Color;
import java.util.ArrayList;

import carte.Cellule;
import carte.terrain.Land;

public class Mana extends Fluid implements Cloneable, Sendable {
	
	private static final String typeName = "Mana";
	//lorsque l'utilisateur (god) dechaine cet element, il le fait sur un range de CLICK_RANGE avec une quantite QUANTITY_GOD avec une proba de RATIO_GOD
	public final static int RANGE_GOD = 20;
	public final static float RATIO_GOD = 0.2f;
	public final static int QUANTITY_GOD = 3;
	//chaque case recouverte de mana peut changer de type selon une certaine probabilite
	public final static float RATIO_MUTATION = 0.1f;
	
	public Mana(){
		super(new Color(195,57,241), 0, typeName, true);
	}
	
	public Mana(int quantity){
		super(new Color(195,57,241), quantity, typeName, true);
	}
	
	public static String getTypeName(){
		return typeName;
	}
	
	public void evolve(ArrayList<Cellule> oldEnv, ArrayList<Cellule> newEnv) {
		if(rand.nextFloat() < RATIO_MUTATION){
			newEnv.get(0).setLand(Land.lands[rand.nextInt(Land.lands.length)]);
		}
		super.evolve(oldEnv, newEnv);
	}
	
	
	//on peut cloner le mana
	public Object clone() {
	    Mana mana = null;
	    // On récupère l'instance à renvoyer par l'appel de la 
		// méthode super.clone()
		mana = (Mana) super.clone();
	    // on renvoie le clone
	    return mana;
	}
	
}
